﻿using S.BreedingHistory.Domain.BreedingHistoryDto;
using S.BreedingHistory.Domain.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace S.BreedingHistory.Infrastructure.Interface
{
    public interface IBreedingHistoryRepository:IBaseRepository<BreedingHistoryModel>
    {
        /// <summary>
        /// 批量添加种母历史记录
        /// </summary>
        /// <param name="breedingHistoryList"></param>
        /// <returns></returns>
        Task<bool> BatchAddAsync(List<BreedingHistoryModel> breedingHistoryList);
        /// <summary>
        /// 种母历史记录反填
        /// </summary>
        /// <param name="BHId"></param>
        /// <returns></returns>
        Task<BreedingHistoryModel> GetBreedingHistoryById(string ELTag);
        /// <summary>
        /// 通过种母电子耳号查询其生产情况
        /// </summary>
        /// <param name="ELTag"></param>
        /// <returns></returns>
        Task<List<BreedingHistoryModel>> GetFileCardById(string ELTag);
        /// <summary>
        /// 批量修改种公母历史记录
        /// </summary>
        /// <param name="breedingHistoryModels"></param>
        /// <returns></returns>
        Task<bool> BatchUpdateBreedHistory(List<BreedingHistoryModel> breedingHistoryModels);
        /// <summary>
        /// 通过种母历史记录主键获取Id
        /// </summary>
        /// <param name="bhrId"></param>
        /// <returns></returns>
        Task<BreedingHistoryModel> GetBreedingHistoryModelById(int bhrId);
        /// <summary>
        /// 通过种母Id获取
        /// </summary>
        /// <param name="EarTag"></param>
        /// <returns></returns>
        Task<BreedingHistoryModel> GetNewBreedingHistoryByEarTag(string? EarTag);

    }
}
